Display of system-level achievements with real-time updating

ABSTRACT

Examples of the disclosure provide real-time display of achievements to a user during gameplay. A computing device receives a request from a user to display a portion of achievement data describing performance of the user in a gaming application. Responsive to the received request, the achievement data is filtered based on contextual criteria. The filtered achievement data is provided to a user interface for display during gameplay. The displayed achievement data is updated by the computing device updates during gameplay. The achievement data may be system-level achievement data. Further, the achievement data may be displayed on another computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S.Non-Provisional application Ser. No. 14/489,379, filed Sep. 17, 2014,which claims the benefit of U.S. Provisional Application No. 62/009,205,filed Jun. 7, 2014, the entireties of which are hereby incorporated byreference herein.

BACKGROUND

In some existing systems, an achievement includes a reward that a userearns for completing certain actions in a gaming application.Achievements are sometimes difficult or time consuming to accomplish,but rewarding to users due to the rewards they provide to players. Someexisting systems display overall achievements of the user from the lastgame, or game statistics from the current game. However, in theseexisting systems, the displayed achievements may not be relevant to acurrent context of the user playing the game application. For example,while the user is playing in level two, achievements from level one maybe displayed. Further, the displayed achievements in the existingsystems often take up valuable screen space and reduce the visibleportion of the game being played. For example, the achievements aredisplayed within the game playing screen (e.g., the achievements overlapthe game playing screen).

SUMMARY

Examples of the disclosure provide real-time updated display ofachievements to a user during gameplay. A computing device receives arequest from a user to display a portion of achievement data describingperformance of the user in a gaming application. Responsive to thereceived request, the achievement data is obtained and filtered based oncontextual criteria. The filtered achievement data is provided to a userinterface for display during gameplay. The displayed achievement data isupdated by the computing device updates during the gameplay.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram illustrating a computing devicedisplaying updated achievement data during gameplay.

FIG. 2 is an exemplary flow chart illustrating operation of thecomputing device to update the displayed achievement data duringgameplay.

FIG. 3 is an exemplary flow chart illustrating operation of thecomputing device to display sorted achievement data in a user interface.

FIG. 4 is an exemplary flow chart illustrating operation of providingthe sorted achievement data to the computing device based on currentcontext of a gaming application.

FIG. 5A, 5B, and 5C illustrate exemplary user interfaces for displayingachievement data.

FIG. 6 illustrates an exemplary achievements application showingachievement data next to a gaming application during gameplay.

FIG. 7A and FIG. 7B illustrate exemplary locked and unlockedachievements, respectively.

FIG. 8A and FIG. 8B are exemplary diagrams illustrating achievementdetails for a locked achievement.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

Referring to the figures, examples of the disclosure update displayedachievement data 114 describing performance of a user during gameplay.The achievement data 114 comprises data describing a set of achievementsand user progress related to the set of achievements. In some examples,a request is received from a user to display at least a portion of theachievement data 114 during gameplay. Responsive to the receivedrequest, the requested portion of achievement data 114 is provided to auser interface 126 for display during the gameplay. The displayedachievement data 114 in the user interface 126 is further updated duringthe gameplay. The achievement data 114 may be displayed and/or updatedin real-time, without the user manually refreshing an achievementportion 504 of the user interface 126. For example, the achievement data114 (e.g., achievement progress for the achievements) relevant to acurrent game environment is displayed in real-time (e.g., on level twoin a game, achievement progress relevant for level two achievements isdisplayed). In some examples, the achievement data 114 may be displayedoutside an execution context of a gaming application 108. For example,the achievement data 114 may be displayed in an achievement applicationon a computing device different from the computing device 102 thatdisplays the gaming application 108. Further, the displayed achievementdata 114 may be system-level achievement data 114 (e.g., consolidatedachievement data 114 from a plurality of gaming applications or otherapplications).

Aspects of the disclosure further enable a better user experience duringgameplay as the user may make informed moves or decisions with thedisplayed achievement data 114 in mind. In this way, aspects of thedisclosure improve user efficiency via the user interface interaction.For example, the user need not manually refresh the achievement data114, as the system automatically updates the achievement data 114 duringgameplay and responsive to the current context of the gameplay (e.g.,based on level, map, time, progress, performance of other players,etc.). Further, elimination of refresh interactions by the user reducespower consumption by the computing device 102. In some examples, theachievement data 114 may be displayed on another computing device (e.g.,different from the computing device 102 displaying the gamingapplication 108). In these examples, more space is available on thecomputing device 102 for displaying the gaming application 108 and theachievement data 114 is also clearly visible (e.g., on another computingdevice).

Referring again to FIG. 1, an exemplary block diagram illustrates acomputing device 102 displaying updated achievement data 114 duringgameplay. In the example of FIG. 1, the computing device 102 associatedwith a user represents a system for updating the displayed achievementdata 114 during gameplay. The computing device 102 represents any deviceexecuting instructions (e.g., as application programs, operating systemfunctionality, or both) to implement the operations and functionalityassociated with the computing device 102. The computing device 102 mayinclude a mobile computing device or any other portable device. In someexamples, the mobile computing device includes a mobile telephone,laptop, tablet, computing pad, netbook, gaming device, and/or portablemedia player. The computing device 102 may also include less portabledevices such as desktop personal computers, kiosks, tabletop devices,and gaming consoles. Additionally, the computing device 102 mayrepresent a group of processing units or other computing devices.

In some examples, the computing device 102 has at least one processor104, a memory area 106, and at least one user interface 126. Theprocessor 104 includes any quantity of processing units, and isprogrammed to execute computer-executable instructions for implementingaspects of the disclosure. The instructions may be performed by theprocessor 104 or by multiple processors within the computing device 102,or performed by a processor external to the computing device 102. Insome examples, the processor 104 is programmed to execute instructionssuch as those illustrated in the figures (e.g., FIGS. 2, 3, and 4).

In some examples, the processor 104 represents an implementation ofanalog techniques to perform the operations described herein. Forexample, the operations may be performed by an analog computing deviceand/or a digital computing device.

The computing device 102 further has one or more computer readable mediasuch as the memory area 106. The memory area 106 includes any quantityof media associated with or accessible by the computing device 102. Thememory area 106 may be internal to the computing device 102 (as shown inFIG. 1), external to the computing device 102 (not shown), or both (notshown). In some examples, the memory area 106 includes read-only memoryand/or memory wired into an analog computing device.

The memory area 106 stores, among other data, one or more applications.The applications, when executed by the processor 104, operate to performfunctionality on the computing device 102. Exemplary applicationsinclude gaming applications 108 (e.g., gaming application #1 throughgaming application #N), mail application programs, web browsers,calendar application programs, address book application programs,messaging programs, media applications, location-based services, searchprograms, and the like. The applications may communicate withcounterpart applications or services such as web services accessible viaa network. For example, the applications may represent downloadedclient-side applications that correspond to server-side servicesexecuting in a cloud.

The memory area 106 further stores application programming interfaces(APIs) 110 and achievement data 114. The APIs 110 expose variousfunctionalities related to the achievements to the gaming applications108. For example, the gaming application 108 (as shown in FIG. 1)publishes achievement data 114 as well as accesses the achievement data114 using the APIs 110. A cloud service 112 may interact with the APIs110 to send information about the achievement data 114 to the gamingapplication 108. In some examples, the cloud service 112 is furtheraware of the current context of the user (e.g., the current level of theuser in the game) after receiving or obtaining such context (e.g., fromthe gaming application 108). Based on the current context, the cloudservice 112 may instruct the APIs 110 to update the displayedachievement data 114 in the user interface 126. In some examples, basedon the current context, the cloud service 112 may instruct the gamingapplication 108 (e.g., via the APIs 110) to update the displayedachievement data 114 in the user interface 126.

The user interface 126 may be a part of the computing device 102 (e.g.,a first computing device), associated with the computing device 102, orexternal to the computing device 102 (e.g., as a part of a secondcomputing device or associated with the second computing device). Insome examples, all portions of the user interface 126 (e.g., gameportion 502 and achievement portion 504) may be displayed on the samecomputing device 102 (e.g., the first computing device). In some otherexamples, portions of the user interface 126 (e.g., game portion 502 andachievement portion 504) may be displayed on different computing devices(e.g., the game portion 502 is displayed on first computing device andthe achievement portion 504 is displayed on a second computing device).

The memory area 106 further stores one or more computer-executablecomponents. Exemplary components include a memory component 116, acontext component 118, a user interface component 120, a communicationsinterface component 122, and a help component 124. The memory component116, when executed by at least one processor causes the at least oneprocessor to access achievement data 114 describing performance of auser in the gaming application 108. The context component 118, whenexecuted by at least one processor causes the at least one processor tofilter the accessed achievement data 114 based on a current gamingenvironment. The current gaming environment comprises contextualcriteria such as user preferences, a current gaming level, and/orcurrent progress of the user in the gaming application 108.

The user interface component 120, when executed by at least oneprocessor causes the at least one processor to provide the achievementdata 114 filtered by the context component 118 for display to the userduring gameplay. In some examples, the user interacts with the gamingapplication 108 on a first computing device and the user interfacecomponent 120 provides the achievement data 114 during gameplay on asecond computing device. The configuration of the first computing deviceand the second computing device may be the same or different. Forexample, the first computing device may be a gaming console and thesecond computing device may be a portable computing device (e.g., atablet, a mobile phone or the like).

In some examples, the user interface component 120 includes a graphicscard for displaying data to the user and receiving data from the user.The user interface component 120 may also include computer-executableinstructions (e.g., a driver) for operating the graphics card. Further,the user interface component 120 may include a display (e.g., a touchscreen display or natural user interface) and/or computer-executableinstructions (e.g., a driver) for operating the display. The userinterface component 120 may also include one or more of the following toprovide data to the user or receive data from the user: speakers, asound card, a camera, a microphone, a vibration motor, one or moreaccelerometers, a BLUETOOTH brand communication module, globalpositioning system (GPS) hardware, and a photoreceptive light sensor.For example, the user may input commands or manipulate data by movingthe computing device 102 in a particular way. The term “BLUETOOTH” asused herein refers, in some examples, to a wireless technology standardfor exchanging data over short distances using short wavelength radiotransmission.

The memory component 116, the context component 118, and the userinterface component 120 may execute during gameplay to intermittently,regularly, periodically, on demand, or otherwise, update the achievementdata 114 displayed by the user interface component 120. For example,based on a change in available and/or remaining achievements to the userin the current gaming environment, the context component 118 determineswhether the presentation of updated achievement data 114 is likely tohelp the user in that particular level of the gaming application 108.Based on the determination by the context component 118, the userinterface component 120 provides the updated achievement data 114 forpresentation to the user during gameplay.

The communications interface component 122, when executed by at leastone processor causes the at least one processor to intermittently,regularly, periodically, on demand, or otherwise, transmit gamingprogress during gameplay to the cloud service 112 for generating theachievement data 114 based on the gaming progress. For example, thegaming progress may be transmitted a predefined number of times during apredefined time period or the gaming progress may be transmitted at theend of a round of the gaming application 108. The processor 104 receivesthe generated achievement data 114 from the cloud service 112 andprovides the received achievement data 114 for display during gameplay.In some examples, the communications interface component 122 includes anetwork interface card and/or computer-executable instructions (e.g., adriver) for operating the network interface card. Communication betweenthe computing device 102 and other devices may occur using any protocolor mechanism over any wired or wireless connection. In some examples,the communications interface component 122 is operable with short-rangecommunication technologies such as by using near-field communication(NFC) tags.

The help component 124, when executed by at least one processor causesthe at least one processor to display (e.g., via the user interfacecomponent 120) a reference to instructions for completing one or moreachievements available to the user in a current level in the gamingapplication 108. For example, in the gaming application 108, thereference to instructions for completing one or more achievementsavailable to the user may be “You have killed eight zombies, kill twomore zombies to get a new weapon” with instructions for where to findthe remaining two zombies.

An exemplary system implementing aspects of the disclosure comprises theuser interface 126, the memory area 106, and the processor 104. The userinterface 126 may be on a single computing device or on a plurality ofcomputing devices (may be of same or different configurations). Forexample, different portions of the user interface 126 may be displayedon or by the same computing device or on or by different computingdevices. The memory area 106 is associated with the computing device 102and stores achievement data 114 for a plurality of users. Theachievement data 114 describes performance of the plurality of users inthe gaming application 108. The processor 104 is programmed to receive arequest from one of the plurality of users to display at least a portionof the achievement data 114 during the gameplay. Responsive to thereceived request, the requested portion of the achievement data 114 fromthe stored achievement data 114 is provided to the user interface 126for display during gameplay. The displayed achievement data 114 in theuser interface 126 is updated during the gameplay (e.g., in real-timewithout refreshing). In some examples, the user interface 126 may not bealready displaying the achievement data 114 and in this scenario theuser interface 126 is updated with the provided achievement data 114. Insome other examples, the user interface 126 may be displaying theachievement data 114 and the displayed achievement data 114 is updatedin the user interface 126 during the gameplay (e.g., on detecting achange in achievement data 114 based on a current context of the user inthe gaming application 108).

The displayed achievement data 114 may be updated during the gameplay byintermittently, regularly, periodically, on demand, or otherwise,transmitting gaming progress during the gameplay to the cloud service112 for generating the achievement data 114 based on the gamingprogress. The generated achievement data 114 is received from the cloudservice 112. The received achievement data 114 is provided for display(e.g., on the user interface 126) during the gameplay. In some examples,the user interface 126 includes a snap pane outside the executioncontext of the gaming application 108. For example, the snap pane may bean achievement application (e.g., different from the gaming application108) executing on the same computing device or a different computingdevice. In some examples, the achievement application is consideredoutside the execution context of the gaming application 108 when anymemory area portion accessible (e.g., for writing and/or reading) by theachievement application is not accessible by the gaming application 108.The achievement application may be installed on the computing device 102from an online marketplace (e.g., an application store).

The processor associated with the system is further programmed to filterthe achievement data 114 based on contextual criteria to generate a setof achievements (e.g., requested achievement data 114) relevant to acurrent gaming environment. In response to the request of the user forachievement data 114, the set of generated achievements is provided fordisplay to the user during the gameplay.

Referring next to FIG. 2, the exemplary flow chart illustrates operationof the computing device 102 to update the displayed achievement data 114during gameplay. At 202, operations performed by the processor 104associated with the computing device 102 start. At 204, a request isreceived to display achievement data 114. For example, the request isreceived from a user to display at least a portion of achievement data114 for at least one user. The achievement data 114 describesperformance of the user in the gaming application 108. In some examples,the achievement data 114 may represent system-level achievement data 114such as in-game achievements (e.g., for a plurality of gamingapplications) monitored, tracked, stored, or otherwise maintainedoutside the gaming application 108 (e.g., by the cloud service 112). Forexample, the user may have interacted with or may have played aplurality of gaming applications (e.g., a certain set of applicationswithin a predefined time period, such as the last two days). In thisscenario, the achievement data 114 is derived, calculated, or otherwisedetermined from data aggregated from the plurality of gamingapplications. For example, an achievement may include killing fivezombies in a first gaming application and winning four races in a secondgaming application. In these examples, the system-level achievements arenot limited to the game being played by the user, and the challenges maybe defined outside the context of the game being played.

Responsive to the received request, the achievement data 114 isobtained, generated, calculated, and/or derived from data describingperformance of the user (e.g., received from the gaming applications 108and/or other applications). At 206, the achievement data 114 is filteredbased on contextual criteria. The achievement data 114 may comprise aset of achievements and user progress relating thereto. Filtering theachievement data 114 based on the contextual criteria comprisessurfacing one or more achievements (e.g., achievements available to bemet in a current level being played by the user in the gamingapplication 108) relevant to a current context of the gaming application108 played by the user. In some examples, only achievements relevant tothe current level in the gaming application 108 are displayed. Filteringthe achievement data 114 based on the contextual criteria may includesorting the achievements based on the contextual criteria such as aprogress of the user, user preferences, and/or a gamer score of theuser. Some examples sort the achievements based on actions taken by theuser in the game and/or based on statistics accumulated during gameplay.

At 208, the filtered achievement data 114 is provided to the userinterface 126 for display during the gameplay. For example, theachievement data 114 may be provided for display on another computingdevice (e.g., a mobile computing device that is different from thecomputing device 102 with which the user interacts for playing the gamein the gaming application 108). The displayed achievement data 114 isupdated at 210 by the computing device 102 (e.g., in real-time, withoutmanual input from the user). In some examples, the displayed achievementdata 114 may be updated by the cloud service 112. At 212, the operationsperformed by the processor 104 associated with the computing device 102end, such as when the gameplay completes.

In some examples, the operations performed by the processor 104associated with the computing device 102 further include providing a setof APIs 110 to applications (e.g., the gaming application 108) executingon the computing device 102 and to the cloud service 112. The set ofAPIs 110 provides access to the achievement data 114 (e.g., to thegaming application 108). The set of APIs 110 may also allow the gamingapplication 108 to provide gaming progress during the gameplay to thecloud service 112 which determines the achievements, and provides theachievement data 114, based on the provided gaming progress, for display(on the user interface 126) to the computing device 102 during gameplay(e.g., in real-time).

Referring next to FIG. 3, the exemplary flow chart illustrates operationof the computing device 102 to display sorted achievement data 114 inthe user interface 126. At 302, operations performed by the processor104 associated with the computing device 102 start. At 304, theachievement data 114 is displayed in the user interface 126 (e.g., inthe snap pane). In some examples, only the relevant achievement data 114may be displayed in the user interface 126 as per the aspects of thedisclosure. At 306, the context of the user in the gaming application108 is detected. The context of the user may comprise a current levelthe user is playing in the gaming application 108, proficiency level ofthe user (e.g., novice, medium, or expert etc.), and requirements of theuser to complete the current level (e.g., a speed gun may be needed tocomplete the current level). At 308, the achievement data 114 is sortedbased on the detected context of the user in the gaming application 108.For example, if the user is playing in level two of the gamingapplication 108, achievement data 114 related to level two is rankedhigher than the achievement data 114 related to the other levels (e.g.,level one). At 310, the sorted achievement data 114 is displayed in theuser interface 126 (e.g., the earlier displayed achievement data 114 at304 is updated with the sorted achievement data 114). At 312, theoperations performed by the processor 104 associated with the computingdevice 102 end (e.g., when the gameplay completes).

Referring next to FIG. 4, the exemplary flow chart illustrates operationof providing the sorted achievement data 114 to the computing device 102based on a current context of the gaming application 108. At 402,operations performed by the processor 104 associated with the computingdevice 102 start. At 404, gaming progress is received from the computingdevice 102. The gaming progress represents progress made by the userwhile playing in the gaming application 108. For example, the user is inlevel two of the game and has already taken five of the sevenachievements available for that level (e.g., for completing the level).As another example, the gaming progress may be that the user hascompleted five of the seven challenges (e.g., with five minutesremaining) in the current level. At 406, achievement data 114 isgenerated based on the received gaming progress. The generatedachievement data 114 may be system-level achievement data 114. Forexample, the system-level achievement data 114 represents in-gameachievement data 114 for one or more gaming applications generated by anapplication different from the gaming applications, or generated by thecloud service 112. In some examples, the achievement data 114 may begenerated based on gaming progress received from a plurality ofcomputing devices (e.g., tablet, notebook, and mobile telephone of theuser).

At 408, the generated achievement data 114 is sorted based on a currentcontext of the gaming application 108. The current context of the gamingapplication 108 may be determined from one or more of the following: theprogress of the user in the gaming application 108, progress of otherusers in the gaming application 108, the current level that the user isplaying in the game, proficiency level of the user, and the like. At410, the sorted achievement data 114 is provided to the computing device102 based on the current context of the gaming application 108. Forexample, the sorted achievement data 114 is provided to the computingdevice 102 only if there is a need or desire for the user to know aboutthe achievement data 114 at that time (e.g., the achievement data 114 isrelevant to the user at that moment). The achievement data 114 may beprovided to the user via the user interface 126, audio output (e.g.,through speakers), and/or other means. At 412, the operations performedby the processor 104 associated with the computing device 102 end.

FIG. 5A, 5B, and 5C illustrate exemplary user interfaces 126 fordisplaying achievement data 114 in some examples. For example, in FIG.5A, the game portion 502 and achievement portion 504 are shownseparately (e.g., side-by-side of each other) in the user interface 126.In FIG. 5B, the achievement portion 504 overlays over the game portion502 in the user interface 126 and may be partially transparent. In FIG.5C, the game portion 502 and achievement portion 504 are shownseparately (e.g., side-by-side of each other) in a differentconfiguration than FIG. 5A in the user interface 126. Other variationsof displaying the game portion 502 and the achievement portion 504 inthe user interface 126 are also within scope of this disclosure. Forexample, the game portion 502 may be displayed in the user interface 126associated with the computing device 102 on which the user is playingthe game and the achievement portion 504 may be displayed on anothercomputing device (e.g., a mobile computing device).

The proportion of the game portion 502 and the achievement portion 504may vary based on user preference, the gaming application 108, and thecurrent context of the user in the gaming application 108. For example,if the entire game portion 502 includes relevant content which the usershould see then a scaling or overlapping of the game portion 502 withthe achievement portion 504 may be undesirable and in such a scenariothe achievement portion 504 (or a portion thereof) may be displayed onanother computing device.

Referring next to FIG. 6, an exemplary achievements application showsachievement data 114 next to the gaming application 108 during gameplay.For example, the achievements application user interface pane is snappednext to a game display. As the user plays the game, the user is able tomonitor achievement progress in real-time. The achievements list isbased on progress for the achievements of individual users. For example,the progress bar for each achievement may have at least two components:one component indicating recent progress (during the current game orgaming session) and one component indicating older progress (during aprevious game or gaming session). While shown with hash marks in FIG. 6,those skilled in the art will note that the two components may bedistinguished from one another in numerous ways. For example, onecomponent may be represented by one color or shade of color, while theother component may be represented by another color or another shade ofcolor. Achievements may be highlighted to show achievements relevant towhat the user is doing in the game.

Referring next to FIG. 7A and FIG. 7B, exemplary locked and unlockedachievements are illustrated, respectively. An exemplary locked tab sortorder is:

-   -   Tracked achievements—sorted by progress    -   Challenges—sorted by progress    -   Untracked achievements—sorted by progress    -   Achievements with no progress    -   Secret achievements

The examples in FIG. 7A and FIG. 7B for achievement data 114 displayvarious exemplary achievement data and allow the user to navigate theachievements. For example:

-   -   List results based on real-time progress updates    -   Secondary progress bar fills up in real-time to indicate new        progress    -   Primary progress bar “catches up” to the secondary position once        the snap gets focus and then loses the focus (e.g., when the        user is done with checking the status, the user goes back to the        game)    -   Selecting an achievement via a gaming controller goes to the        details page    -   The user may navigate tabs shown in the user interface via the        gaming controller. For example, left/right buttons and        left/right bumpers switch among the tabs. The user may also        focus on tabs and press another button.

As an example, the unlocked achievements may be sorted by displaying themost recently unlocked achievements at the top. As an example, thelocked achievements may be sorted by displaying the locked achievementswith the most progress at the top.

Referring next to FIG. 8A and FIG. 8B, the exemplary diagram illustratesachievement details for a locked achievement, with or without a rewardavailable. In these examples:

-   -   The “Move to top” option moves the achievement to the top        section of the list    -   “Search for achievement help” option launches a browser to issue        a search query for “game name”, “achievement name”, or other        relevant search terms.    -   “Share” option shares this achievement, such as by electronic        mail, text message, or social media (e.g., posting to a web        page). Sharing a locked achievement is helpful for asking        friends for help. Sharing an unlocked achievement may prompt        other users to give accolades or ask questions about how to        complete the achievement.    -   “View in full screen” option launches the details page for this        achievement in full screen.

An exemplary implementation of the logic and functionality for providingthe display and updating of system-level achievements is next described.Any combination of the following is within the scope of the disclosure,and may be available in the snapped achievement application (e.g., aportion of the game screen) or full screen. Some implementationsautomatically connect to the game. For example, the implementation knowswhat game is being played (e.g., detects execution of the game) andautomatically loads the achievements, challenges, and statisticsassociated with the game. Some implementations sort game achievements bypercentage complete, or otherwise by how close the user is toaccomplishing the achievements. Some implementations bubble up, or rankhigher, achievements on which the user is making progress. As anexample, a “kill 100 zombies” achievement temporarily bubbles up to thetop of the list of achievements whenever the user makes progress towardsthat achievement (e.g., kills a zombie). Some implementations bubble upachievements that are relevant to what the user is doing in the game.For example, if the user is on level two of a game and there is anachievement for completing level two, or collecting 100 items in leveltwo, one or more of those achievements are bubbled up to the top of thelist while those achievements are relevant. Some implementations showrelevant challenges for the game the user is playing. For example, whenchallenges are active for the game the user is playing, those challengesare highlighted in the snapped application (e.g., the achievementsapplication displaying the achievement data). Some examples keep theuser updated with real-time progress on their achievements. For example,when the user kills a zombie, the completion percentage on the “kill 100zombies” achievement is updated in real-time. Some implementationscelebrate when the user has accomplished an achievement. For example,when the user accomplishes an achievement, an achievement unlocked toast(e.g., popup, or other user interface element) is displayed, but themoment is also celebrated in the user interface pane of the snappedachievement application. For example, the unlocked achievement may moveto the top of the list, fireworks are set off, achievement art is shown,etc.

For example, the scenario of filtering or bubbling up the relevantachievements may be based on what the user is doing in-game (e.g.,playing on level two, using a specific weapon, fighting a specific typeof enemy, etc.). For example, when defining or configuring theachievements, achievement metadata may be marked (e.g., by a gamedeveloper) with a set of tags (e.g., store the tags in a field of theachievement metadata). Exemplary tags for “kill 100 zombies” may be“zombies”. Exemplary tags for achievement “travel 10 miles” may be“walking”, “driving”, “flying”, and “boating.” Exemplary tags forachievement “drive 5 miles in level two” may be “driving” and “leveltwo.” The set of tags may be different for different achievements, arebased on at least the associated achievements, may be based on otherachievements, and may be defined by the game developer, in someexamples.

During gameplay or during execution of other applications, the gamegenerates relevant context tags (e.g., for use by the cloud service 112)based on what the user is doing in the game or other application. Thecontext tags may be generated by the game itself or by the cloud service112 based on information provided by the game. For example, if the useris driving in any level then the context tags may be “driving. Asanother example, if the user is driving in level two then the contexttags may be “driving” and “level two.” In still another example, if theuser is walking in level two the generated context tags may be “walking”and “level two.” The achievements of the user may be monitored (e.g., bythe cloud service 112) through the context tags generated duringgameplay and comparing these context tags with the tags provided in theachievement metadata (e.g., defined by the game developer). Theachievements may be filtered or bubbled up based on the comparison thatmatch the set of tags in achievement metadata with the context tagsgenerated during gameplay. The filtering or bubbling up of theachievements based on the comparison may be user configurable (e.g., atleast one achievement matches, all the achievements match, or apredefined number of achievements match). For example, during gameplayif the user is driving in level two (context tag including “driving”)may result in filtering or bubbling up the achievements “travel 10miles” (tags including “walking”, “driving”, “flying”, and/or “boating”)and “drive 5 miles in level two” (tags including “driving” and “leveltwo”). As another example, if the user is walking in level two (contexttags including “walking” and “level two”) may or may not result infiltering or bubbling up one or more of the achievements “travel 10miles” (tags including “walking”, “driving”, “flying”, and “boating”)and “drive 5 miles in level two” (tags including “driving” and “leveltwo”).

Some implementations launch into the snapped achievement applicationwhen the user interacts with an achievement toast. For example, when theuser is playing a game and accomplishes an achievement and wants to seemore details about the achievement, a reduced size version of theachievement application is launched instead of the full screenachievements application so that the user is not completely taken out ofthe game experience. Some implementations allow optional sorting by nameand gamer score. For example, while “by progress” sorting is helpful forfinding or searching for achievements and other reasons, the user maywant to sort alphabetically to find a particular achievement, or bygamer score to look for the most valuable achievements. Someimplementations allow optional sorting by friend or communityachievement rarity. For example, the user is able to sort by the rarityof an achievement so that the user knows which achievements are easy toget and which ones are more difficult. Some implementations allow theuser to pin an achievement in progress to the top of the list. Forexample, when the user is working on a particular achievement, the usermay pin the achievement to the top of the list in the snappedapplication for easy viewing. Some implementations show the user whatfriends are currently playing this game. These implementations may showthe user who else is currently playing this game, so that the user mayjump in and earn achievements together with that user. Someimplementations show the user when a friend of the user accomplishes anachievement for this game. This helps the user stay competitive withtheir friends by highlighting “just completed” and/or “recentlycompleted” achievements by the friends in this game. Someimplementations show the user extra details for a particularachievement. For example, if the user hovers over or selects anachievement, the user is shown extra details such as rewards the userwill earn, friends who accomplished this achievement, and/or rarity ofthe achievement.

Some implementations automatically search the web for help on anachievement. For example, if the user is having trouble with aparticular achievement, these implementations automatically launch abrowser for the user with a well-defined search string such as “GAME Aachievement help”. Some implementations show game digital video recorder(DVR) clips related to this achievement. For example, if the user ishaving trouble on an achievement, the user is shown game DVR clipstagged with this achievement so that the user may see how other peoplehave completed the achievement. When not connected to a game, someimplementations let the user browse through a list of all of the gamesand achievements of the user. For example, when the user is notsearching for achievements in a game, the user may browse through theachievements lists of other games the user owns. Some implementationsshow the user completion details for the game the user is playing. Forexample, while the user is searching for achievements, theseimplementations show the user basic game details such as game name,achievement/gamer score completion, and/or game completion. Someimplementations show the user gamer score details associated with theuser. For example, these implementations show the gamertag (or otheruser identifier) and gamer score (or other data representing gamingperformance and history of the user) of the user so that the user maynote when the user crosses important milestones.

Some examples contemplate the cloud service 112 or other server storingthe achievement data 114. The computing device 102 communicates with thecloud service 112 (e.g., via the APIs 110) to obtain and store portionsof the achievement data 114 (e.g., the portions needed or desired by theuser(s) of the computing device 102). In some examples, a game executingon the computing device 102 sends gaming progress to the cloud service112. The achievements application executing on the computing device 102connects to the cloud service 112 (e.g., via the APIs) to obtainreal-time updates for display to the user.

While some aspects of the disclosure have described achievements withreference to the gaming application 108, the disclosure applies to othertypes of applications as well. For example, for a media playerapplication, an achievement is “watching ten action movies.” If the userachieves this goal defined as an achievement, the user may be providedwith an incentive (e.g., the next movie may be shown for free).

Additional Examples

Requests received, by the computing device 102, from the user may beautomatically generated based on the context of the user and/or thegaming progress (e.g., in last predefined time period—such as in thelast two minutes) in the gaming application 108. For example, if theuser has not been able to complete any new achievement in the last twominutes, the achievement data 114 may be updated without an explicitrequest from the user.

In some examples, group achievements may be displayed in the achievementportion 504. For example, based on their individual gaming progress,achievement data 114 for a plurality of users is displayed in theachievement portion 504 (e.g., the snap pane). The group achievementsmay be cooperative (e.g., at least two users playing together as agroup) or competitive (e.g., at least two users competing against eachother).

In an example scenario, the user requests help on how to complete theremaining achievements. The user may request help by pressing a button,issuing a command by touch, gesture, or speech, or by any other meansknown in the art. In response to the request for help, live help may beprovided to the user during gameplay (e.g., in the achievement portion504). Help may be provided by searching for web clips, videos, etc. forcompleting the remaining achievements. Help may be displayed in the snappane (e.g., the video providing help to the user is shown in the snappane). In some examples, the achievement data 114 is shown live as thecomputing device 102 tracks gaming progress in real-time (e.g., thecomputing device 102 tracks one zombie killed in the game and updatesthe achievement data 114 if this event affects the achievement data114).

Exemplary achievements are displayed in the snap user interface pane inreal-time. The achievements are related to the game (e.g., context ofthe user in the gaming application 108), as the user progresses towardsthe achievements. For example, the achievements may be ordered by one ormore of the following: progress (e.g., how close you are toaccomplishing them), manually (e.g., based on user preference, interest,etc.), achievement rarity (e.g., whether the achievement is easy toachieve or hard to achieve), and/or similarity (e.g., similarachievements that friends have accomplished). The achievements may besorted and/or filtered based on the current section of the game that theuser is on (e.g., the achievements unrelated to the current level arehidden). In some examples, the achievement data 114 (e.g., completedand/or remaining achievements) and gaming progress are represented in atagging format such as an extensible markup language (XML). Otherformats may also be used for representing the achievement data 114 andgaming progress.

The snap pane may display real-time progress of the system-levelachievements. For example, the monitoring of achievement progress isperformed in real-time based on the context of the user within thegaming application 108. In some examples, the system-level achievementsmay be surfaced to the user only when the user performs a relevantaction in the game. Recent achievement progress may be highlighted tothe users in real-time based on the context of the user within thegaming application 108. For example, multiplayer achievements arehighlighted when the user is playing a multiplayer game and achievementsof the one or more other users are relevant to the user in the currentcontext (e.g., only the relevant achievements of those users aredisplayed to the user).

Achievements may also be represented by challenges. For example,achievement data 114 may include the challenges that lie ahead forcompleting the current level. The achievement data 114 may include thechallenges completed and/or the challenges that need to be completed forcompleting the current level. In some examples, the challenges orachievements may be available only for a limited time (e.g., with nogamer score). Exemplary achievements in the achievement portion 504 ofthe user interface 126 may show session progression. For example, theprogress bar may be color-coded to show the current games progressagainst the progress of the last session. A session may be from game togame or since the last time the user played the game.

Alternatively or in addition to the other examples described herein,examples include any combination of the following:

-   -   receiving, by a computing device, a request from a user to        display at least a portion of achievement data for at least one        user describing performance of the user in a gaming application    -   responsive to the received request, filtering the achievement        data based on contextual criteria    -   providing the filtered achievement data to a user interface for        display during gameplay    -   updating, by the computing device, the displayed achievement        data during the gameplay    -   providing a set of APIs to applications executing on the        computing device, the set of APIs providing access to the        achievement data    -   the achievement data comprising a set of achievements and user        progress relating thereto    -   filtering the achievement data is based on the contextual        criteria and comprises surfacing one or more achievements        relevant to a current context of the gaming application played        by the user    -   surfacing the one or more achievements includes surfacing one or        more achievements available to be met in a current level being        played by the user in the gaming application    -   filtering the achievement data based on the contextual criteria        comprises sorting the achievements based on the contextual        criteria such as a progress of the user, user preferences,        and/or a gamer score of the user    -   the achievement data represents system-level achievement data    -   the system-level achievement data represents in-game        achievements monitored from outside the gaming application    -   providing the filtered achievement data comprises providing the        filtered achievement data for display on another computing        device    -   the another computing device comprises a mobile computing device        of the user    -   receive a request from one of the plurality of users to display        at least a portion of the achievement data during gameplay    -   responsive to the received request, provide the requested        portion of the achievement data from the stored achievement data        to the user interface for display during the gameplay    -   update the displayed achievement data in the user interface        during the gameplay    -   updating the displayed achievement data during the gameplay in        real-time    -   intermittently, regularly, periodically, on demand, or        otherwise, transmitting gaming progress during the gameplay to a        cloud service for generating the achievement data based on the        gaming progress    -   receiving the generated achievement data from the cloud service    -   providing the received achievement data for display during the        gameplay    -   filtering the achievement data based on contextual criteria to        generate a set of achievements relevant to a current gaming        environment, and providing the requested achievement data by        providing the set of achievements for display to the user during        the gameplay    -   the user interface comprises a snap pane outside an execution        context of the gaming application    -   the memory component accesses achievement data describing        performance of a user in a gaming application    -   the context component filters the accessed achievement data        based on a current gaming environment    -   the user interface component provides the achievement data        filtered by the context component for display to the user during        gameplay    -   wherein the memory component, the context component, and the        user interface component execute during the gameplay to        intermittently, regularly, periodically, on demand, or        otherwise, update the achievement data displayed by the user        interface component    -   the current gaming environment comprises contextual criteria        such as user preferences, a current gaming level, and/or current        progress of the user in the gaming application    -   the communications interface component intermittently,        regularly, periodically, on demand, or otherwise, transmits        gaming progress during the gameplay to a cloud service for        generating the achievement data based on the gaming progress    -   the communications interface component receives the generated        achievement data from the cloud service and provide the received        achievement data for display during the gameplay    -   the help component displays, via the user interface component, a        reference to instructions for completing one or more        achievements available to the user in a current level in the        gaming application    -   the user interacts with the gaming application on a first        computing device and the user interface component provides the        achievement data, during the gameplay, on a second computing        device

At least a portion of the functionality of the various elements in FIGS.2, 3, and 4 may be performed by other elements in FIG. 1, or an entity(e.g., processor, web service, server, application program, computingdevice, etc.) not shown in FIG. 1.

In some examples, the operations illustrated in FIGS. 2, 3, and 4 may beimplemented as software instructions encoded on a computer readablemedium, in hardware programmed or designed to perform the operations, orboth. For example, aspects of the disclosure may be implemented as asystem on a chip or other circuitry including a plurality ofinterconnected, electrically conductive elements.

While the aspects of the disclosure have been described in terms ofvarious examples with their associated operations, a person skilled inthe art would appreciate that a combination of operations from anynumber of different examples is also within scope of the aspects of thedisclosure.

While no personally identifiable information is tracked by aspects ofthe disclosure, examples have been described with reference to datamonitored and/or collected from the users. In some examples, notice maybe provided to the users of the collection of the data (e.g., via adialog box or preference setting) and users are given the opportunity togive or deny consent for the monitoring and/or collection. The consentmay take the form of opt-in consent or opt-out consent.

Exemplary Operating Environment

Exemplary computer readable media include flash memory drives, digitalversatile discs (DVDs), compact discs (CDs), floppy disks, and tapecassettes. By way of example and not limitation, computer readable mediacomprise computer storage media and communication media. Computerstorage media include volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer readable instructions, data structures,program modules or other data. Computer storage media are tangible andmutually exclusive to communication media. Computer storage media areimplemented in hardware and exclude carrier waves and propagatedsignals. Computer storage media for purposes of this disclosure are notsignals per se. Exemplary computer storage media include hard disks,flash drives, and other solid-state memory. In contrast, communicationmedia typically embody computer readable instructions, data structures,program modules, or other data in a modulated data signal such as acarrier wave or other transport mechanism and include any informationdelivery media.

Although described in connection with an exemplary computing systemenvironment, examples of the disclosure are capable of implementationwith numerous other general purpose or special purpose computing systemenvironments, configurations, or devices.

Examples of well-known computing systems, environments, and/orconfigurations that may be suitable for use with aspects of thedisclosure include, but are not limited to, mobile computing devices,personal computers, server computers, hand-held or laptop devices,multiprocessor systems, gaming consoles, microprocessor-based systems,set top boxes, programmable consumer electronics, mobile telephones,mobile computing and/or communication devices in wearable or accessoryform factors (e.g., watches, glasses, headsets, or earphones), networkPCs, minicomputers, mainframe computers, distributed computingenvironments that include any of the above systems or devices, and thelike. Such systems or devices may accept input from the user in any way,including from input devices such as a keyboard or pointing device, viagesture input, proximity input (such as by hovering), and/or via voiceinput.

Examples of the disclosure may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices in software, firmware, hardware,or a combination thereof The computer-executable instructions may beorganized into one or more computer-executable components or modules.Generally, program modules include, but are not limited to, routines,programs, objects, components, and data structures that performparticular tasks or implement particular abstract data types. Aspects ofthe disclosure may be implemented with any number and organization ofsuch components or modules. For example, aspects of the disclosure arenot limited to the specific computer-executable instructions or thespecific components or modules illustrated in the figures and describedherein. Other examples of the disclosure may include differentcomputer-executable instructions or components having more or lessfunctionality than illustrated and described herein.

Aspects of the disclosure transform a general-purpose computer into aspecial-purpose computing device when configured to execute theinstructions described herein.

The examples illustrated and described herein as well as examples notspecifically described herein but within the scope of aspects of thedisclosure constitute exemplary means for filtering the achievement data114 based on contextual criteria. For example, the elements illustratedin FIG. 1, such as when encoded to perform the operations illustrated inFIG. 2, constitute exemplary means for receiving, by the computingdevice, a request from the user to display at least a portion ofachievement data 114 for at least one user describing performance of theuser in the gaming application, exemplary means for filtering theachievement data 114 based on contextual criteria in response to thereceived request, exemplary means for providing the filtered achievementdata 114 to the user interface 126 for display during gameplay, andexemplary means for updating, by the computing device, the displayedachievement data 114 during gameplay.

Alternatively, or in addition, the functionally described herein may beperformed, at least in part, by one or more hardware logic components.For example, and without limitation, illustrative types of hardwarelogic components that may be used include field-programmable gate arrays(FPGAs), application-specific integrated circuits (ASICs),application-specific standard products (ASSPs), system-on-a-chip (SOC)implementations, complex programmable logic devices (CPLDs), etc.

The order of execution or performance of the operations in examples ofthe disclosure illustrated and described herein is not essential, unlessotherwise specified. That is, the operations may be performed in anyorder, unless otherwise specified, and examples of the disclosure mayinclude additional or fewer operations than those disclosed herein. Forexample, it is contemplated that executing or performing a particularoperation before, contemporaneously with, or after another operation iswithin the scope of aspects of the disclosure.

When introducing elements of aspects of the disclosure or the examplesthereof, the articles “a,” “an,” “the,” and “said” are intended to meanthat there are one or more of the elements. The terms “comprising,”“including,” and “having” are intended to be inclusive and mean thatthere may be additional elements other than the listed elements. Theterm “exemplary” is intended to mean “an example of” The phrase “one ormore of the following: A, B, and C” means “at least one of A and/or atleast one of B and/or at least one of C.”

Having described aspects of the disclosure in detail, it will beapparent that modifications and variations are possible withoutdeparting from the scope of aspects of the disclosure as defined in theappended claims. As various changes could be made in the aboveconstructions, products, and methods without departing from the scope ofaspects of the disclosure, it is intended that all matter contained inthe above description and shown in the accompanying drawings shall beinterpreted as illustrative and not in a limiting sense.

Although the subject matter has been described in language specific tostructural features and/or acts, it is to be understood that the subjectmatter defined in the appended claims is not necessarily limited to thespecific features or acts described above. Rather, the specific featuresand acts described above are disclosed as examples of implementing theclaims and other equivalent features and acts are intended to be withinthe scope of the claims.

What is claimed is:
 1. A method comprising: storing, at a cloud service,achievement data describing performance of a user in a gamingapplication for execution on a computing device; receiving, at the cloudservice, a request from the computing device for at least a portion ofthe achievement data; responsive to the received request, filtering, bya processor, the achievement data based on contextual criteria on thecloud service; providing, by the processor, the filtered achievementdata to the computing device for display to a user during gameplay; andupdating, by the cloud service, the achievement data by: intermittentlyreceiving data corresponding to gaming progress based at least in parton the execution of the gaming application on the computing device;generating, by the cloud service, additional achievement data based atleast in part on the data corresponding to the gaming progress; andproviding, by the cloud service, the additional achievement data to thecomputing device for display to the user during the gameplay.
 2. Themethod of claim 1, further comprising providing a set of applicationprogramming interface (APIs) to applications to access the achievementdata.
 3. The method of claim 1, wherein the achievement data comprises aset of achievements and user progress relating thereto, and whereinfiltering the achievement data based on the contextual criteriacomprises providing one or more achievements relevant to a currentcontext of the gaming application played by the user and one or moreprevious achievements relevant to at least one other application.
 4. Themethod of claim 3, wherein providing the one or more achievementscomprises providing one or more achievements available to be met in acurrent level being played by the user in the gaming application.
 5. Themethod of claim 1, wherein the achievement data comprises a set ofachievements and user progress relating thereto, and wherein filteringthe achievement data based on the contextual criteria comprises sortingthe achievements based on the contextual criteria selected from a groupconsisting of a progress of the user, user preferences, and a gamerscore of the user.
 6. The method of claim 1, wherein the achievementdata represents system-level achievement data comprising achievementdata from one or more other gaming applications.
 7. The method of claim1, wherein intermittently receiving the data corresponding to theprogress comprises intermittently receiving context tags associated withthe gaming progress; and wherein generating additional achievement databased at least in part on the data corresponding to the gaming progresscomprises: comparing the context tags with achievement tags; identifyingone or more of the context tags that match one or more of theachievement tags; and generating the additional achievement data basedat least in part on the one or more context tags that match the one ormore of the achievement tags.
 8. A system comprising: a servercomprising one or more processors; and a memory area associated with theserver, the memory area storing achievement data for a user describingperformance of the user in a gaming application executed on a computingdevice, wherein the one or more processors are programmed to: receive arequest from the computing device for at least a portion of theachievement data; responsive to the received request, filtering theachievement data based on contextual criteria on the cloud service;provide the filtered achievement data to the computing device fordisplay to the user during gameplay; and update the achievement data by:intermittently receiving data corresponding to gaming progress based atleast in part on the execution of the gaming application on thecomputing device; generating additional achievement data based at leastin part on the data corresponding to the gaming progress; and providingthe additional achievement data to the computing device for display tothe user during the gameplay.
 9. The system of claim 8, wherein the oneor more processors are further programmed to provide a set ofapplication programming interface (APIs) to applications to access theachievement data.
 10. The system of claim 8, wherein the achievementdata comprises a set of achievements and user progress relating thereto,and wherein filtering the achievement data based on the contextualcriteria comprises providing one or more achievements relevant to acurrent context of the gaming application played by the user and one ormore previous achievements relevant to at least one other application.11. The system of claim 10, wherein providing the one or moreachievements comprises providing one or more achievements available tobe met in a current level being played by the user in the gamingapplication.
 12. The system of claim 8, wherein the achievement datacomprises a set of achievements and user progress relating thereto, andwherein filtering the achievement data based on the contextual criteriacomprises sorting the achievements based on the contextual criteriaselected from a group consisting of a progress of the user, userpreferences, and a gamer score of the user.
 13. The system of claim 8,wherein the achievement data represents system-level achievement datacomprising achievement data from one or more other gaming applications.14. The system of claim 8, wherein intermittently receiving the datacorresponding to the progress comprises intermittently receiving contexttags associated with the gaming progress; and wherein generatingadditional achievement data based at least in part on the datacorresponding to the gaming progress comprises: comparing the contexttags with achievement tags; identifying one or more of the context tagsthat match one or more of the achievement tags; and generating theadditional achievement data based at least in part on the one or morecontext tags that match the one or more of the achievement tags.
 15. Oneor more computer storage media embodying computer-executable instructionthat when executed by one or more processors, cause the one or moreprocessors to perform operations comprising: storing achievement datadescribing performance of a user in a gaming application for executionon a computing device; receiving a request from the computing device forat least a portion of the achievement data; responsive to the receivedrequest, filtering, by a context component, the achievement data basedon contextual criteria; providing, by an interface component, thefiltered achievement data to the computing device for display to a userduring gameplay; and updating the achievement data by: intermittentlyreceiving data corresponding to gaming progress based at least in parton the execution of the gaming application on the computing device;generating additional achievement data based at least in part on thedata corresponding to the gaming progress; and providing the additionalachievement data to the computing device for display to the user duringthe gameplay.
 16. The one or more computer storage media of claim 15,wherein the computer-executable instruction further cause the one ormore processors to perform operations comprising providing a set ofapplication programming interface (APIs) to applications to access theachievement data.
 17. The one or more computer storage media of claim15, wherein the achievement data comprises a set of achievements anduser progress relating thereto, and wherein filtering the achievementdata based on the contextual criteria comprises providing one or moreachievements relevant to a current context of the gaming applicationplayed by the user and one or more previous achievements relevant to atleast one other application.
 18. The one or more computer storage mediaof claim 17, wherein providing the one or more achievements comprisesproviding one or more achievements available to be met in a currentlevel being played by the user in the gaming application.
 19. The one ormore computer storage media of claim 15, wherein the achievement datacomprises a set of achievements and user progress relating thereto, andwherein filtering the achievement data based on the contextual criteriacomprises sorting the achievements based on the contextual criteriaselected from a group consisting of a progress of the user, userpreferences, and a gamer score of the user.
 20. The one or more computerstorage media of claim 15, wherein the achievement data representssystem-level achievement data comprising achievement data from one ormore other gaming applications.